home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / PCHDT_E3.CAB / SIhtm_04.js < prev    next >
Encoding:
Text File  |  2003-02-21  |  13.8 KB  |  518 lines

  1. var remoteServer = "";//local if not set
  2. var wbemCimtypeString = 8
  3.  
  4. function displayTableSegment(outerDiv, dataArray)
  5. {
  6.     var tableElement = document.all[outerDiv];
  7.     var repeatItemHTML = tableElement.outerHTML;
  8.     var strHTML = "";
  9.     var noOfInstances = dataArray[0];    
  10.     
  11.     for(var i=0; i < noOfInstances; i++)
  12.     {
  13.         for(var k=0; k < dataArray[i+1].length; k++)
  14.         if (dataArray[i+1][k] != null)
  15.         {
  16.             tableElement.all(outerDiv + "_" + (k+1)).innerHTML= dataArray[i+1][k];
  17.         }
  18.         strHTML = strHTML + tableElement.outerHTML;
  19.     }
  20.     tableElement.outerHTML = strHTML;
  21. }
  22.  
  23. function DisplayLocStrings() {
  24.     WaitMessage.innerHTML = MSG_WAIT;
  25.     Refresh.innerHTML = TAG_REFRESH;
  26.  
  27.     SetProgressBarImage();
  28.     
  29.     with(Specifications.all) {
  30.       Caption.innerHTML = TAG_SPECIFICATIONS;
  31.       label1.innerHTML = TAG_SYSTEMMODEL + ":";
  32.       label2.innerHTML = TAG_BIOSVERSION + ":";
  33.     }
  34.     
  35.     with(Processor.all) {
  36.       Caption.innerHTML = TAG_PROCESSOR;
  37.       label1.innerHTML = TAG_VERSION + ":";
  38.       label2.innerHTML = TAG_SPEED + ":";
  39.     }
  40.     
  41.     with(OS.all) {
  42.       Caption.innerHTML = TAG_OS;
  43.       label1.innerHTML = TAG_VERSION + ":";
  44.       label2.innerHTML = TAG_SP + ":";
  45.       label3.innerHTML = TAG_LOCATION + ":";
  46.       label4.innerHTML = TAG_PID + ":";
  47.       label5.innerHTML = TAG_HOTFIX + ":";
  48.      // label6.innerHTML = TAG_LANGUAGE + ":";
  49.     }
  50.     
  51.     with(General_Comp_Info.all) {
  52.       Caption.innerHTML = TAG_GENCOMPINFOCAPTION;
  53.       label1.innerHTML = TAG_SYSTEMNAME + ":";
  54.       label2.innerHTML = TAG_DOMAIN + ":";
  55.       label3.innerHTML = TAG_TIMEZONE + ":";
  56.       //label4.innerHTML = TAG_COUNTRYREGION + ":";
  57.      // label5.innerHTML = TAG_CONNECTION + ":";
  58.      // label6.innerHTML = TAG_PRXYSVR + ":";
  59.      // label7.innerHTML = TAG_IPADDR + ":";
  60.      // label8.innerHTML = TAG_IPXADDR + ":";
  61.  
  62.       label4.innerHTML = TAG_CONNECTION + ":";
  63.       label5.innerHTML = TAG_PRXYSVR + ":";
  64.       label6.innerHTML = TAG_IPADDR + ":";
  65.       label7.innerHTML = TAG_IPXADDR + ":";
  66.     }
  67.     
  68.     with(Memory.all) {
  69.       Caption.innerHTML = TAG_MEMORY;
  70.       label1.innerHTML = TAG_CAPACITY + ":";
  71.     }
  72.     
  73.     with(Local_Disk.all) {
  74.       Caption.innerHTML = TAG_LOCALDISK;
  75.       label1.innerHTML = TAG_TOTALCAPACITY + ":";
  76.       label2.innerHTML = TAG_SUMHARDDRIVES + ":";
  77.       label3.innerHTML = TAG_USED + ":";
  78.       label4.innerHTML = TAG_FREE + ":";
  79.     }
  80.   }
  81.  
  82. function dispatchFunction() {
  83.   document.body.style.cursor= "wait";
  84.   document.body.scroll= "no";
  85.   
  86.   DisplayLocStrings();
  87.   window.setTimeout("LoadChores(0)", TIMEOUT);  
  88. }
  89.  
  90.  
  91. var INCR_UNIT = 100/6;//move progress bar in increments of INCR_UNIT
  92. function LoadChores(taskId) {
  93.   try {
  94.  
  95.     switch(taskId)
  96.     {
  97.       case 0:
  98.         remoteServer = GetServerName();//set remoteServer
  99.         ShowServerName(TAG_PROPERTIES);
  100.         break;
  101.  
  102.       case 1:
  103.         DrawProgressBar(INCR_UNIT, TAG_SPECIFICATIONS);
  104.         break;
  105.       case 2:
  106.         getComputerInfo();
  107.         break;
  108.  
  109.       case 3:
  110.         DrawProgressBar(INCR_UNIT * 2, TAG_PROCESSOR);
  111.         break;
  112.       case 4:
  113.         getProcessorInfo();
  114.         break;
  115.  
  116.       case 5:
  117.         DrawProgressBar(INCR_UNIT * 3, TAG_OS);
  118.         break;
  119.       case 6:
  120.         getOSInfo();
  121.         break;
  122.  
  123.       case 7:
  124.         DrawProgressBar(INCR_UNIT * 4, TAG_GENCOMPINFO);
  125.         break;
  126.       case 8:
  127.         getGeneralInfo();
  128.         break;
  129.  
  130.       case 9:
  131.         DrawProgressBar(INCR_UNIT * 5, TAG_MEMORY);
  132.         break;
  133.       case 10:
  134.         getMemoryInfo();
  135.         break;
  136.  
  137.       case 11:
  138.         DrawProgressBar(INCR_UNIT * 6, TAG_LOCALDISK);
  139.         break;
  140.       case 12:
  141.         displayTotalLogicalDrivesInfo();
  142.         break;
  143.  
  144.       default:
  145.          taskId = -1;
  146.         _headerOnly.style.display = "none";
  147.         _wholeBody.style.display = "";
  148.         document.body.style.cursor= "default";
  149.         document.body.scroll= "auto";
  150.     }
  151.     
  152.     if(taskId >= 0)
  153.       window.setTimeout("LoadChores(" + ++taskId + ")", TIMEOUT);
  154.   }
  155.     
  156.   catch (e) {
  157.     HandleErr(e);
  158.   }
  159. }
  160.  
  161. // The array of pointers to the array containing instance information.
  162. // The first member contains the number of instances the structure contains.
  163.  
  164.  
  165. //******** Summary page functions goes here ******************************
  166.  
  167. function getComputerInfo()
  168. {
  169.     var locator = wbemlocator;
  170.     var service = locator.ConnectServer(remoteServer);
  171.     service.Security_.impersonationlevel = 3;
  172.      
  173.     var col1 = new Enumerator(service.ExecQuery("Select * from win32_ComputerSystem"));
  174.     var mainArray = new Array();
  175.     if(!col1.atEnd())
  176.     {
  177.         
  178.         var col2 = new Enumerator(service.ExecQuery("Select * from win32_BIOS"));
  179.         if (!col2.atEnd())
  180.         {
  181.             var strVersion = "", strBIOSVersion = "", strSMBIOSVersion = "", strManufacturer = "";
  182.             var q = col2.item();
  183.                         var collProp = new Enumerator(q.Properties_);
  184.             
  185.             for(; !collProp.atEnd(); collProp.moveNext()) 
  186.               {
  187.                 var prop = collProp.item();
  188.                 if(prop.Name == "SMBIOSBIOSVersion")
  189.                 {
  190.                     if(prop.CIMType == wbemCimtypeString)
  191.                     {
  192.                         strSMBIOSVersion = prop.Value;
  193.                     }
  194.                 }
  195.                 else if(prop.Name == "Manufacturer")
  196.                 {
  197.                     if(prop.CIMType == wbemCimtypeString)
  198.                     {
  199.                         strManufacturer = prop.Value;
  200.                     }
  201.                 }
  202.                 else if(prop.Name == "BIOSVersion")
  203.                 {
  204.                     if(prop.IsArray)
  205.                     {
  206.                         if(prop.Value)
  207.                         {
  208.                             var safearr = new VBArray(prop.Value);
  209.                             for(var i=0; i<=safearr.ubound(1); i++)
  210.                                 strBIOSVersion += (i!=0 ? ", " : "") + safearr.getItem(i);
  211.                         }
  212.                     }
  213.                 }
  214.                 else if(prop.Name == "Version")
  215.                 {
  216.                     if(prop.CIMType == wbemCimtypeString)
  217.                     {
  218.                         strVersion = prop.Value;
  219.                     }
  220.                 }
  221.             }
  222.  
  223.             if(strSMBIOSVersion)
  224.             {
  225.                 strBIOSVersion = (strManufacturer ? strManufacturer : " ") + " " + strSMBIOSVersion;
  226.             }
  227.    
  228.             if(!strBIOSVersion)
  229.             {
  230.                 if(strVersion)
  231.                     strBIOSVersion = strVersion;
  232.                 else
  233.                     strBIOSVersion = TAG_UNKNOWN;
  234.             }
  235.         }
  236.  
  237.         var p = col1.item();
  238.         
  239.         var subArray = new Array(3);
  240.         subArray[0] = p.Manufacturer;
  241.         subArray[1] = p.Model;
  242.         subArray[2] = strBIOSVersion;
  243.         
  244.         mainArray[0] = 1;
  245.         mainArray[1] = subArray;
  246.     }
  247.  
  248.     displayTableSegment("Mark1", mainArray);
  249. }
  250.  
  251. function getProcessorInfo() {
  252.     var locator = wbemlocator;
  253.     var service = locator.ConnectServer(remoteServer);
  254.     service.Security_.impersonationlevel = 3;
  255.     
  256.     var col1 = new Enumerator(service.ExecQuery("Select * from Win32_Processor"));
  257.     var i=0;
  258.     var mainArray = new Array();
  259.     for (;!col1.atEnd();col1.moveNext())
  260.     {
  261.  
  262.         var p = col1.item();
  263.         var subArray = new Array(3);
  264.         subArray[0] = p.Name;
  265.         subArray[1] = p.MaxClockSpeed ? (p.MaxClockSpeed + " " + TAG_MHZ) : TAG_UNKNOWN;
  266.         subArray[2] = p.Description;
  267.         i += 1;
  268.         mainArray[0] = i;
  269.         mainArray[i] = subArray;
  270.     }
  271.     displayTableSegment("Mark2", mainArray);
  272. }
  273.  
  274.  
  275. function getOSInfo() {
  276.   
  277.   var locator = wbemlocator;
  278.   var service = locator.ConnectServer(remoteServer);
  279.   service.Security_.impersonationlevel = 3;
  280.  
  281.   var nRemainingGracePeriod = null;
  282.   var collData = new Enumerator(service.ExecQuery("Select * from Win32_WindowsProductActivation"))
  283.   
  284.   if(!collData.atEnd())
  285.   {
  286.     var data = collData.item();
  287.     if(data.ActivationRequired > 0)
  288.       nRemainingGracePeriod = data.RemainingGracePeriod;
  289.   }
  290.       
  291.   var coll = new Enumerator(service.ExecQuery("Select * from win32_OperatingSystem"));
  292.   var i=0;
  293.   mainArray = new Array();
  294.   for (;!coll.atEnd();coll.moveNext())
  295.   {
  296.    var p = coll.item();
  297.            
  298.    var subArray = new Array(6);
  299.    subArray[0] = p.Caption;
  300.    subArray[1] = nRemainingGracePeriod ? " - " + TAG_ACTIVATINSTATUS.replace(/%arg1%/, nRemainingGracePeriod) : "";
  301.    subArray[2] = p.Version ;
  302.    subArray[3] = (p.ServicePackMajorVersion).toString() + "." + (p.ServicePackMinorVersion).toString() ;
  303.    subArray[4] = p.WindowsDirectory;
  304.  
  305.    var strHotFixID = "";
  306.    var col1 = new Enumerator(service.ExecQuery("Select * from win32_QuickFixEngineering"));
  307.    for (;!col1.atEnd();col1.moveNext())
  308.    {
  309.        var q= col1.item();
  310.        strHotFixID = q.HotFixID;
  311.    }
  312.           
  313.    var hndShell = new ActiveXObject("WScript.Shell");
  314.    strPID = hndShell.RegRead("HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\ProductID");
  315.           
  316.    subArray[5] = strPID ;
  317.    subArray[6] = strHotFixID;
  318.    i += 1;
  319.    mainArray[0] = i;
  320.    mainArray[i] = subArray;
  321.    break;
  322.   }
  323.     
  324.   displayTableSegment("Mark3", mainArray);
  325. }
  326.  
  327. function getGeneralInfo()
  328. {
  329.     var locator = wbemlocator;
  330.     try {
  331.       var service = locator.ConnectServer(remoteServer, "root/cimv2/applications/MicrosoftIE");
  332.       service.Security_.impersonationlevel = 3;
  333.       var lanSettings = new Enumerator(service.ExecQuery("Select * from MicrosoftIE_LanSettings"));
  334.       var strProxyServer="";
  335.       for(;!lanSettings.atEnd();lanSettings.moveNext())    
  336.       {
  337.           var lanSetting = lanSettings.item();    
  338.           strProxyServer = lanSetting.ProxyServer;
  339.           if ((lanSetting.AutoProxyDetectMode).toUpperCase() == "ENABLED")
  340.               strProxyServer = TAG_PRXYAUTODETECT;
  341.           else if (strProxyServer == "")
  342.               strProxyServer = TAG_NONE;
  343.       }  
  344.     }
  345.     catch(e) {
  346.       strProxyServer = TAG_UNKNOWN;
  347.     }
  348.   
  349.     service = locator.ConnectServer(remoteServer);
  350.     service.Security_.impersonationlevel = 3;
  351.  
  352.     var col2 = new Enumerator(service.ExecQuery("Select * from win32_TimeZone"));
  353.     var strTimeZone = "";
  354.     var colCS = new Enumerator(service.ExecQuery("Select DaylightInEffect from Win32_ComputerSystem"));
  355.     var daylightsavings = false;
  356.  
  357.  
  358.     for (;!colCS.atEnd();colCS.moveNext())
  359.     {
  360.         var itm = colCS.item();
  361.         daylightsavings = itm.DaylightInEffect
  362.     }
  363.     for (;!col2.atEnd();col2.moveNext())
  364.     {
  365.         var p = col2.item();
  366.         if (daylightsavings)
  367.         {
  368.             strTimeZone = p.DaylightName;
  369.         }
  370.         else
  371.         {
  372.             strTimeZone = p.StandardName;
  373.         }
  374.         break;        
  375.     }
  376.  
  377.     /*var col3 = new Enumerator(service.ExecQuery("Select * from win32_OperatingSystem"));
  378.     var strCountry = "";
  379.     for (;!col3.atEnd();col3.moveNext())
  380.     {
  381.         var p = col3.item();
  382.         strCountry = getCountryInfo(p.CountryCode);
  383.         break;        
  384.     }*/
  385.  
  386.     var col4 = new Enumerator(service.ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPEnabled = 'True'"));
  387.     var strIPAddress = "";
  388.     for (;!col4.atEnd();col4.moveNext())
  389.     {
  390.         var p = col4.item();
  391.         if (p.IPAddress != null) {
  392.                 var temparr = (p.IPAddress).toArray();
  393.                 for (var ii=0; ii < temparr.length; ii++) {
  394.                     if ((temparr[ii] != null) || (temparr[ii] != ""))
  395.                       strIPAddress += (strIPAddress == "" ? "" : "<BR>") + temparr[ii];
  396.                 }
  397.         }
  398.                 
  399.     }
  400.     
  401.     var col4 = new Enumerator(service.ExecQuery("select * from Win32_NetworkAdapterConfiguration where IPXEnabled = 'True'"));
  402.     var strIPXAddress = "";
  403.     for (;!col4.atEnd();col4.moveNext())
  404.     {
  405.         var p = col4.item();
  406.         if (p.IPXAddress != null) 
  407.           strIPXAddress += (strIPXAddress == "" ? "" : "<BR>") + p.IPXAddress;
  408.     }
  409.     strIPXAddress = (strIPXAddress == "") ? TAG_NOTENABLED : strIPXAddress;
  410.  
  411.     var coll = new Enumerator(service.ExecQuery("Select * from win32_ComputerSystem"));
  412.     var i=0;
  413.     mainArray = new Array();
  414.     for (;!coll.atEnd();coll.moveNext())
  415.     {
  416.      var p = coll.item();
  417.          
  418.      var subArray = new Array(6);
  419.      subArray[0] = p.Caption ;
  420.      subArray[1] = p.Domain ;
  421.      subArray[2] = strTimeZone ;
  422.  
  423.       subArray[3] = getNetworkInfo(p.DomainRole) ;
  424.      subArray[4] = strProxyServer;
  425.      subArray[5] = strIPAddress;
  426.      subArray[6] = strIPXAddress;
  427.      i += 1;
  428.      mainArray[0] = i;
  429.      mainArray[i] = subArray;
  430.      break;
  431.     }
  432.  
  433.     displayTableSegment("Mark4", mainArray);
  434. }
  435.  
  436. function getMemoryInfo() 
  437. {
  438.      var locator = wbemlocator;
  439.      var service = locator.ConnectServer(remoteServer);
  440.      service.Security_.impersonationlevel = 3;
  441.  
  442.       var coll = new Enumerator(service.ExecQuery("Select Capacity from Win32_PhysicalMemory"));
  443.       var memCapacity = null;
  444.       mainArray = new Array();
  445.       if (!coll.atEnd())
  446.       {
  447.         for (;!coll.atEnd();coll.moveNext())
  448.         {
  449.             var p = coll.item();
  450.             if(!isNaN(p.Capacity))
  451.               memCapacity += parseInt(p.Capacity); //in bytes.
  452.         }
  453.       }
  454.       else
  455.       {
  456.         var insts = new Enumerator(service.ExecQuery("Select * from Win32_ComputerSystem"));
  457.         for(; !insts.atEnd(); insts.moveNext())
  458.         {
  459.               var inst = insts.item();
  460.               memCapacity += parseInt(inst.TotalPhysicalMemory); //in bytes.
  461.         }
  462.       }
  463.      
  464.      var subArray = new Array(1);
  465.      subArray[0] = memCapacity ? fig2Words(memCapacity) : TAG_UNKNOWN; 
  466.      mainArray[0] = 1;
  467.      mainArray[1] = subArray;
  468.  
  469.     displayTableSegment("Mark5", mainArray);
  470. }
  471.  
  472.  
  473. function displayTotalLogicalDrivesInfo()
  474. {
  475.     var img1 = new Image();
  476.     img1.src = "Graphics\\PieChart.gif";
  477.     var locator = wbemlocator;
  478.     var service = locator.ConnectServer(remoteServer);
  479.     service.Security_.impersonationlevel = 3;
  480.     var coll = new Enumerator(service.ExecQuery("Select * from win32_LogicalDisk"));
  481.     var i=0;
  482.     mainArray = new Array();
  483.     var nTotalCapacity = 0;
  484.     var strDrives = "";
  485.     var nUsedSpace = 0;
  486.     var nFreeSpace = 0;
  487.      
  488.     for (;!coll.atEnd();coll.moveNext())
  489.     {
  490.         var p = coll.item();
  491.         if (p.DriveType == 3)
  492.         {            
  493.            nTotalCapacity += Number(p.Size);
  494.            strDrives += (p.Name + " ");
  495.            nUsedSpace += Number(p.size - p.FreeSpace);
  496.            nFreeSpace += Number(p.FreeSpace);
  497.         }
  498.     }
  499.  
  500.     // fill up main/sub array here
  501.     var subArray = new Array(4);
  502.     subArray[0] = fig2Words(nTotalCapacity) ;
  503.     subArray[1] = strDrives ;
  504.  
  505.     var nPerUsage = Math.round(nUsedSpace/(nUsedSpace + nFreeSpace) * 100);
  506.     nPerUsage = isNaN(nPerUsage) ? 0 : nPerUsage;
  507.     var nGifID = determineRange(nPerUsage);
  508.               
  509.     var strGifPath = "Graphics\\33x16pie\\" + nGifID + "_chart.gif";
  510.     subArray[2] = "<IMG Border=0 SRC=" + strGifPath + ">";
  511.     subArray[3] = fig2Words(nUsedSpace) ;//used space
  512.     subArray[4] = fig2Wordsfloor(nFreeSpace) ; 
  513.     i += 1;
  514.     mainArray[0] = i;
  515.     mainArray[i] = subArray;
  516.     displayTableSegment("Mark6", mainArray);
  517. }
  518.